package gui_interfaces;

import java.sql.SQLException;

import Beans.Artigiano;
import Beans.Azienda;
import Beans.Partner;
import Beans.Professionista;
import Beans.Responsabile;
import Beans.Ricettivita;
import Beans.Sede;
import Beans.TipoProfessionista;
import Beans.TipoRicettivita;

public interface CommonInterface {
	
	
	//
	// COSTRUTTORE CONTENENTE LA MACROCATEGORIA COME PARAMETRO
	//DA MEMORIZZARE IN VAR ISTANZA PER SPECIALIZZARE LA RICERCA
	//
	//public CommonInterface(String macrocategoria);
	
	
	/**
	 * 
	 * @return
	 */
	public String[] getListaMacroCategorie() throws SQLException;

	
	public String[] getCategorie(String macrocategoria); //aziende, prof ecc
	
	
	/**
	 * civile ecc..
	 * @param categoria
	 * @return
	 */
	public String[] getSpecializzazione(String categoria);
	
	
	/**
	 * 
	 * @param macrocategoria
	 * @param categoria
	 * @param specializzazione
	 * @return
	 */
	public String[] getPaesi(String categoria, String specializzazione);

	
	public String[] getRegioni(String categoria, String specializzazione, String paese);
	
	public String[] getProvince(String categoria, String specializzazione, String paese, String regione);
	
	public String[] getComune(String categoria, String specializzazione, String paese, String regione, String provincia);
	
	
	/**
	 * 
	 * @param categoria
	 * @param specializzazione
	 * @param paese
	 * @param regione
	 * @param provincia
	 * @return
	 */
	public Azienda[] getAziende(String categoria, String specializzazione, String paese, String regione, String provincia, String comune);
	
	
	/**
	 * 
	 * @param categoria
	 * @param paese
	 * @param regione
	 * @param provincia
	 * @param comune
	 * @return
	 */
	public Artigiano[] getArtigiani(String categoria, String paese, String regione, String provincia, String comune);
	
	/**
	 * 
	 * @param categoria
	 * @param specializzazione
	 * @param paese
	 * @param regione
	 * @param provincia
	 * @param comune
	 * @return
	 */
	public Professionista[] getProfessionisti(String categoria, String specializzazione, String paese, String regione, String provincia, String comune);
	
	/**
	 * 
	 * @param categoria
	 * @param specializzazione
	 * @param paese
	 * @param regione
	 * @param provincia
	 * @return
	 */
	public Ricettivita[] getRicettivita(String categoria, String specializzazione, String paese, String regione, String provincia);
	
	/*************************************************/
	
	/**
	 * 
	 * @param p
	 */
	public void addMacroCategoria(String macrocategoria);
	
	public void addCategoria(String nomeCategoria, String macrocategoria);
	
	/**
	 * 
	 * @param nomeSpecializzazione
	 * @param nomeCategoria
	 * @param nomePartner
	 */
	public void addSpecializzazione(String nomeSpecializzazione, String nomeCategoria, String macrocategoria);
	
	
	/**
	 * 
	 * @param s
	 * @throws SQLException
	 */
	public void aggiungiSede(Sede s) throws SQLException;
	
	/**
	 * 
	 * @param s
	 * @throws SQLException
	 */
	public void eliminaSede(Sede s) throws SQLException;
	
	/**
	 * 
	 * @param s
	 * @throws SQLException
	 */
	public void modificaSede(Sede s) throws SQLException;
	
	
	/**
	 * 
	 * @param r
	 * @throws SQLException
	 */
	public void aggiungiResponsabile(Responsabile r) throws SQLException;
	
	/**
	 * 
	 * @param id
	 * @throws SQLException
	 */
	public void eliminaResponsabile(int id) throws SQLException;
	
	/**
	 * 
	 * @param r
	 * @throws SQLException
	 */
	public void modificaResponsabile(Responsabile r) throws SQLException;
}
